/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package vigas.componentes;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 *
 * @author Lidiany
 */
public class Engaste implements Apoio{

    //aqui vai ser uma das duas extremidades da viga
    private Point pontoMarcadoNaviga;
    private boolean engasteEsq = true;
    private String labelResultante = null;
    private Float resultanteX = null;
    private Float resultanteY = null;

    //o engaste vai ser mais fácil fazer com alguma imagem
    public void desenharApoio(Graphics g, Color cor) {
        Graphics2D g2 = (Graphics2D) g.create();
            g2.setColor(cor);

        int pontoX = pontoMarcadoNaviga.x;
        int pontoY = pontoMarcadoNaviga.y;
       
        // linhas
        if(engasteEsq){
             //desenhar imagem ou linhas
        g2.drawLine(pontoX - 4, pontoY - 25, pontoX - 4, pontoY + 33);
            g2.drawLine(pontoX - 4, pontoY - 20, pontoX - 12, pontoY - 25);
            g2.drawLine(pontoX - 4, pontoY - 10, pontoX - 12, pontoY - 15);
            g2.drawLine(pontoX - 4, pontoY, pontoX - 12, pontoY - 5);
            g2.drawLine(pontoX - 4, pontoY + 10, pontoX - 12, pontoY + 5);
            g2.drawLine(pontoX - 4, pontoY + 20, pontoX - 12, pontoY + 15);
            g2.drawLine(pontoX - 4, pontoY + 30, pontoX - 12, pontoY + 25);

        }else{
             //desenhar imagem ou linhas
        g2.drawLine(pontoX + 4, pontoY - 25, pontoX + 4, pontoY + 33);
            g2.drawLine(pontoX + 4, pontoY - 20, pontoX + 12, pontoY - 25);
            g2.drawLine(pontoX + 4, pontoY - 10, pontoX + 12, pontoY - 15);
            g2.drawLine(pontoX + 4, pontoY, pontoX + 12, pontoY - 5);
            g2.drawLine(pontoX + 4, pontoY + 10, pontoX +12, pontoY + 5);
            g2.drawLine(pontoX + 4, pontoY + 20, pontoX + 12, pontoY + 15);
            g2.drawLine(pontoX + 4, pontoY + 30, pontoX + 12, pontoY + 25);
        }
         //setResultante("Ra", 0, 0);
        if(labelResultante != null && resultanteX != null && resultanteY != null){
            g2.setColor(Color.red);
            String rx, ry;
            NumberFormat format = new DecimalFormat("##.###");
            rx = format.format( resultanteX );
            ry = format.format( resultanteY );
            String resultanteDasForcas = labelResultante + "x: " +rx + "kN";
            g2.drawString(resultanteDasForcas, pontoX + 6, pontoY + 50);

            resultanteDasForcas = labelResultante + "y: " +ry + "kN";
            g2.drawString(resultanteDasForcas, pontoX + 6, pontoY + 65);

        }
        g2.dispose();
    }

    public Point getPontoMarcadoNaviga() {
        return pontoMarcadoNaviga;
    }

    public void setPontoMarcadoNaviga(Point pontoMarcadoNaviga) {
        this.pontoMarcadoNaviga = pontoMarcadoNaviga;
    }

    public void setEngasteEsq(boolean engasteEsq) {
        this.engasteEsq = engasteEsq;
    }

    @Override
    public String toString() {
        return "Engaste";
    }

    public void setResultante(String label, float valorX, float valorY) {
        this.labelResultante = label;
        this.resultanteX = valorX;
        this.resultanteY = valorY;
    }

}
